﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using LogicaNegocio;
using Entidades;


namespace PresentacionEscritorio
{
    public partial class frmModificarMatriculaAMedico : Form, IFormsPadre_Hijo
    {
        GestorEspecialidadXMedico GEM;
        public EspecialidadMedico EspRecibida { get; set; }
        frmRegistrarEspecialidadPorMedico mifrmPadre;

        public frmModificarMatriculaAMedico()
        {
            InitializeComponent();
        }

        private void frmModificarMatriculaAMedico_Load(object sender, EventArgs e)
        {
            llenarForm();
        }

        private void llenarForm()
        {
            txtNombre.Text = EspRecibida.Medico.ApellidoNombre;
            txtEspecialidad.Text = EspRecibida.Especialidad.Nombre;
            mskTxtNumeroMatricula.Text = EspRecibida.NumeroMatriculaEspecialidad.ToString();
        }

        private bool validarMatricula()
        {
            bool res = true;
            if (string.IsNullOrEmpty(mskTxtNuevoNumMatricula.Text))
            {
                MessageBox.Show("Debe ingresar el nuevo número de matrícula", "Información", MessageBoxButtons.OK);
            }
            else
            {
                long nro;
                bool resNro = long.TryParse(mskTxtNuevoNumMatricula.Text, out nro);
                if (!resNro)
                    MessageBox.Show("La matrícula debe ser un valor numérico", "Información", MessageBoxButtons.OK);
                res = resNro;
            }
            return res;
        }

        private void btnCancelar_Click(object sender, EventArgs e)
        {
            this.Dispose();
        }

        private void btnNuevo_Click(object sender, EventArgs e)
        {
            mskTxtNuevoNumMatricula.Text = "";
        }

        public void setFormPadre(Form formPadre)
        {
            mifrmPadre = (frmRegistrarEspecialidadPorMedico)formPadre;
        }

        public void setFormHijo(Form formHijo)
        {
            throw new NotImplementedException();
        }

        private void btnAceptar_Click(object sender, EventArgs e)
        {
            if (validarMatricula())
            {
                long nroMatriculaNuevo = long.Parse(mskTxtNuevoNumMatricula.Text);
                EspRecibida.NumeroMatriculaEspecialidad = nroMatriculaNuevo; //asignamos el nuevo número de matricula
                GestorMedicos gm = new GestorMedicos();
                bool res = gm.modificarMatriculaEspecilidadMedico(EspRecibida);
                if (res)
                {
                    //actualizar grilla
                    mifrmPadre.actualizarCambios();
                    this.Dispose();
                }
                else
                    MessageBox.Show("No se ha podido actualizar la matricula de la especialidad", "Información", MessageBoxButtons.OK);

            }
        }
    }

}
